package com.ysh.druid;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

/*
    数据库连接池Druid（阿里）
        Druid不会自动加载配置文件，需要手动加载配置文件，文件名称可以自定义
 */
public class DruidTest1 {
    public static void main(String[] args) throws Exception {
        // 获取配置文件的流对象
        InputStream is = DruidTest1.class.getClassLoader().getResourceAsStream("druid.properties");

        // 1.通过Properties集合，加载配置文件
        Properties prop = new Properties();
        prop.load(is);

        // 2.通过Druid连接池工厂类获取数据库连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        // 3. 通过连接池对象获取数据库连接进行使用
        Connection conn = dataSource.getConnection();
        // 执行查询操作
        String sql = "select * from student";
        PreparedStatement pstmt = conn.prepareStatement(sql);
        // 4.执行sql语句，接收结果集
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
            System.out.println(
                    rs.getInt("sid") + "\t"
                            + rs.getString("name") + "\t"
                            + rs.getInt("age") + "\t"
                            + rs.getDate("birthday")
            );
        }

        // 释放资源
        rs.close();
        pstmt.close();
        conn.close();
    }

}
